﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Negocio;
using Dominio;

namespace Presentacion.Caja
{
    public partial class FrmCaja : Form
    {
        public FrmCaja()
        {
            InitializeComponent();
        }
        DataTable _dtProducto = new DataTable();
        public int coMesa = 0;
        public string _noMesa = string.Empty;

        private void TablaGeneral()
        {
            _dtProducto.Columns.Add("CodigoProducto");
            _dtProducto.Columns.Add("Producto");
            _dtProducto.Columns.Add("Precio");
            _dtProducto.Columns.Add("Cantidad");
            _dtProducto.Columns.Add("SubTotal");
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            GetTime();
        }
        public string GetTime()
        {
            string fecha = DateTime.Now.ToLongTimeString();

            string TimeInString = "";

            // Get current time
            int hour = Convert.ToInt32(fecha.Substring(0, 2));  //fecha.Substring(11,2)
            int min = Convert.ToInt32(fecha.Substring(3, 2));   //fecha.Substring(14, 2)
            int sec = Convert.ToInt32(fecha.Substring(6, 2));   //fecha.Substring(17, 2)

            // Format current time into string
            if (hour < 10)
            {
                TimeInString = "0" + hour.ToString();
            }
            else
            {
                TimeInString = hour.ToString();
            }

            if (min < 10)
            {
                TimeInString += ":" + "0" + min.ToString();
            }
            else
            {
                TimeInString += ":" + min.ToString();
            }

            if (sec < 10)
            {
                TimeInString += ":" + "0" + sec.ToString();
            }
            else
            {
                TimeInString += ":" + sec.ToString();
            }

            return TimeInString;
        }

        private void FrmCaja_Load(object sender, EventArgs e)
        {
            TablaGeneral();
            txtHora.Text = GetTime();
            txtMesa.Text = _noMesa;
            //se valida si la mesa seleccionada esta en estado ocupado para mostrar el detalle de su pedido.
            int codigoComanda = new MaestroComanda_Log().Log_MaestroComanda_Validar(coMesa);
            //se valida si tienes algun pedido que este en proceso de atencion.
            VerificarPedido(codigoComanda);
            Categoria_List();
        }

        private void VerificarPedido(int _codigoMaestro)
        {
            List<DetalleComanda> _detalleList = new List<DetalleComanda>();
            _detalleList = new DetalleComanda_Log().Log_DetalleComanda_List(_codigoMaestro);
            if (_detalleList.Count > 0)
            {
                foreach (DetalleComanda item in _detalleList)
                {
                    DataRow _rows = _dtProducto.NewRow();
                    _rows["CodigoProducto"] = item.Producto.coProducto.ToString();
                    _rows["Producto"] = item.Producto.noProducto;
                    _rows["Precio"] = item.precio.ToString("N");
                    _rows["Cantidad"] = item.cantidadProducto.ToString();
                    _rows["SubTotal"] = item.subTotal.ToString("N");
                    _dtProducto.Rows.Add(_rows);
                }
                dgPedidos.DataSource = _dtProducto;
            }
        }

        private void Categoria_List()
        {
            List<TipoPago> _Lista = new List<TipoPago>();
            _Lista = new TipoPago_Log().Log_TipoPago_List();
            ListTipoPago.Controls.Clear();
            foreach (TipoPago item in _Lista)
            {
                Button btnDynamicButton = new Button();
                btnDynamicButton.Name = item.coTipoPago.ToString();
                btnDynamicButton.Text = item.noTipoPago;
                btnDynamicButton.Size = new System.Drawing.Size(152, 76);
                btnDynamicButton.BackColor = Color.White;
                btnDynamicButton.Click += new EventHandler(this.btnDynamicButton_Click);
                ListTipoPago.Controls.Add(btnDynamicButton);
            }
        }

        protected void btnDynamicButton_Click(object sender, EventArgs e)
        {
            Button dynamicButton = (sender as Button);
            string codigoCategoria = dynamicButton.Name;
            //SubCategoria_List(Convert.ToInt32(codigoCategoria));
        }
    }
}
